import os
# 导入os模块，用于与操作系统进行交互，主要是配置环境变量

from celery import Celery, platforms
# 从Celery模块导入Celery类和platforms模块。Celery是分布式任务队列的核心类，platforms用于处理操作系统相关设置

# 设置Django的默认设置模块，告诉Celery如何找到Django的配置
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'login.settings')

# 创建一个Celery应用实例，指定Celery应用的名称和任务队列的配置
# 'login'是Celery应用的名称，broker和backend分别指定了任务队列和任务结果存储使用的Redis实例
app = Celery('login', broker='redis://:123456@127.0.0.1:6379/1', backend='redis://:123456@127.0.0.1:6379/15')
# broker参数指定Celery连接的Redis实例地址和数据库索引（这里连接的是Redis 6379端口的第1个数据库）
# backend参数指定Celery使用Redis的第15个数据库来存储任务的结果

# 从Django设置中加载Celery的配置，自动将Celery配置与Django的配置结合起来
app.config_from_object('django.conf:settings')

# 自动发现Django应用中所有的任务（tasks.py文件中的任务），并注册到Celery应用中
app.autodiscover_tasks()

# 设置Celery在Unix平台上以root用户运行时的行为。这里的True强制Celery允许root用户启动任务。
platforms.C_FORCE_ROOT = True



# celery -A mall  worker -l info -P eventlet

# celery -A mall beat -l info